using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using UnityEngine;

/// <summary>
/// STT：Speech-To-Text（语音转文字）抽象基类
/// 提供统一的接口，供其他子类继承并实现
/// </summary>
public class STT : MonoBehaviour
{
    /// <summary>
    /// 语音识别 API 接口地址（由子类指定）
    /// </summary>
    [SerializeField] protected string m_SpeechRecognizeURL = string.Empty;

    /// <summary>
    /// 用于计算语音识别耗时的计时器
    /// </summary>
    [SerializeField] protected Stopwatch stopwatch = new Stopwatch();

    /// <summary>
    /// 语音识别方法（输入 AudioClip 类型音频）
    /// 子类可以重写该方法，实现音频上传与识别
    /// </summary>
    /// <param name="_clip">音频剪辑</param>
    /// <param name="_callback">识别结果回调</param>
    public virtual void SpeechToText(AudioClip _clip, Action<string> _callback)
    {
        // 留空：由子类实现
    }

    /// <summary>
    /// 语音识别方法（输入 byte[] 类型音频数据）
    /// 子类可以重写该方法，实现音频上传与识别
    /// </summary>
    /// <param name="_audioData">音频字节数据</param>
    /// <param name="_callback">识别结果回调</param>
    public virtual void SpeechToText(byte[] _audioData, Action<string> _callback)
    {
        // 留空：由子类实现
    }
}